{"version":3,"file":"static/chunks/pages/_site/[city]/domru-tv/channel/[alias]-929c320f96af3e0a.js","mappings":"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","sources":["webpack://_N_E/?4606","webpack://_N_E/../../packages/api-domru/src/api-epg/v1/channels/alias/index.ts","webpack://_N_E/../../packages/api-domru/src/api-epg/v1/channels/id.ts","webpack://_N_E/./src/features/schedule/ChannelDetail/index.js","webpack://_N_E/./src/features/schedule/DescriptionDetail/index.js","webpack://_N_E/./src/features/schedule/getPackagesWithChannel.js","webpack://_N_E/./pages/_site/[city]/domru-tv/channel/[alias].js","webpack://_N_E/./src/api/requests/contentRequest.js","webpack://_N_E/../../packages/ui-react/src/components/accordions/AccordionAnimate/AccordionAnimateBody.js","webpack://_N_E/../../packages/ui-react/src/components/accordions/AccordionAnimate/AccordionAnimateHeader.js","webpack://_N_E/../../packages/ui-react/src/components/accordions/AccordionAnimate/index.js","webpack://_N_E/../../packages/ui-react/src/components/accordions/AccordionAnimate/image/bottom.svg"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_site/[city]/domru-tv/channel/[alias]\",\n function () {\n return require(\"private-next-pages/_site/[city]/domru-tv/channel/[alias].js\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_site/[city]/domru-tv/channel/[alias]\"])\n });\n }\n ","import { IRequest } from '@r1-frontend/shared/types/IRequest';\n\n/*\n* Информация о канале по alias\n* https://master.api-epg.sandbox.d2c.r-one.io/docs/#/v1/ChannelController_getChannelByAliasAndProvider\n*/\n\nexport const getChannelInfoByAlias = (alias: string, providerId: number): IRequest => ({\n uri: `/api/v1/${providerId}/channels/alias/${alias}`,\n method: 'GET',\n queryParams: {\n with: 'channelInfo',\n },\n headers: {\n providerId: `${providerId}`,\n },\n});\n","import { IRequest } from '@r1-frontend/shared/types/IRequest';\n\n/*\n* Информация о канале с ID\n* https://master.api-epg.sandbox.d2c.r-one.io/docs/#/v1/ChannelController_getProviderChannelById\n*/\n\nexport const getChannelInfo = (id: number, providerId: number): IRequest => ({\n uri: `/api/v1/${providerId}/channels/${id}`,\n method: 'GET',\n queryParams: {\n with: 'channelInfo',\n },\n headers: {\n providerId: `${providerId}`,\n },\n});\n","import { COLORS as COLORS_OLD } from '@r1-frontend/ui-react/assets/js/constants';\nimport { AccordionAnimate } from '@r1-frontend/ui-react/components/accordions/AccordionAnimate';\nimport { AccordionAnimateBody } from '@r1-frontend/ui-react/components/accordions/AccordionAnimate/AccordionAnimateBody';\nimport { AccordionAnimateHeader } from '@r1-frontend/ui-react/components/accordions/AccordionAnimate/AccordionAnimateHeader';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\nimport React, { Component } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { EGP_IMG } from '~/src/constants';\n\nimport { dateToScheduleFormat } from '../helpers';\n\nconst FutureBroadcasts = styled.div`\n margin-top: 16px;\n width: 100%;\n`;\n\nconst BroadcastTime = styled.div`\n flex-shrink: 0;\n text-align: center;\n width: 66px;\n`;\n\nconst BroadcastTitle = styled.div`\n flex-grow: 1;\n`;\n\nconst Broadcast = styled.div`\n align-items: stretch;\n color: ${COLORS_OLD.darkGrey};\n cursor: pointer;\n display: flex;\n flex-direction: column;\n ${FONTS.S};\n margin-top: 16px;\n outline: none;\n position: relative;\n width: 88%;\n\n @media only screen and (max-width: 1359px) {\n width: 100%;\n }\n\n &:first-child {\n margin-top: 0;\n }\n\n ${({ broadcastStatus }) => broadcastStatus && css`\n ${BroadcastTime},\n ${BroadcastTitle} {\n color: ${COLORS.TextPrimary};\n }\n `}\n\n ${({ broadcastStatus }) => broadcastStatus === null && css`\n ${BroadcastTitle} {\n color: ${COLORS.TextPrimary};\n }\n `}\n\n &:focus,\n &:active {\n ${css`\n ${BroadcastTime},\n ${BroadcastTitle} {\n color: ${COLORS_OLD.red};\n }\n `}\n }\n`;\n\nconst BroadcastProgress = styled.div`\n background-color: ${COLORS_OLD.grey};\n display: block;\n height: 3px;\n margin-top: 6px;\n width: 100%;\n`;\n\nconst BroadcastProgressBar = styled.div`\n background-color: ${COLORS_OLD.lightGreen};\n display: block;\n height: 100%;\n width: 0;\n`;\n\nconst BroadcastHead = styled.div`\n width: 100%;\n display: flex;\n flex-wrap: nowrap;\n`;\n\nconst BroadcastContent = styled.div`\n width: 100%;\n display: flex;\n flex-flow: row;\n margin-top: 10px;\n\n span {\n max-width: 55%;\n }\n`;\n\nconst BroadcastContentPicture = styled.div`\n width: 100%;\n max-height: 112px;\n max-width: 198px;\n overflow: hidden;\n margin-right: 20px;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n`;\n\nexport default class ChannelDetail extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n accordionIsShow: false,\n };\n }\n\n onBroadcastClick = (event, broadcast, index) => {\n if (index > 4) {\n const content = {\n title: broadcast.title,\n desc: broadcast.desc,\n icon: broadcast.icon,\n };\n\n const coordinates = {\n x: event.clientX,\n y: event.clientY,\n };\n\n this.props.tooltipOpen(content, coordinates);\n } else {\n return;\n }\n }\n\n render() {\n const pastBroadcasts = this.props.pastBroadcasts.map((broadcast, index) => (\n this.onBroadcastClick(event, broadcast) }\n tabIndex='0'\n >\n {/* {dateToScheduleFormat(broadcast.start)} */}\n {broadcast.title}\n \n ));\n\n const futureBroadcasts = this.props.futureBroadcasts.map((broadcast, index) => {\n let progress = null;\n\n if (broadcast.status === true) {\n progress = (\n \n \n \n );\n }\n\n return (\n this.onBroadcastClick(event, broadcast, index)}\n tabIndex='0'\n >\n \n {dateToScheduleFormat(new Date(broadcast.start))}\n \n {broadcast.title}\n {progress}\n \n \n {index <= 4 && \n {broadcast.icon && \n {broadcast.title}\n }\n {broadcast.desc && {broadcast.desc}}\n \n }\n \n );\n });\n\n const settings = {\n margin: 0,\n text: 'Показать прошедшие передачи',\n };\n\n if (this.state.accordionIsShow) {\n settings.margin = '40px';\n settings.text = 'Cкрыть прошедшие передачи';\n }\n\n let template = (
Расписания нет
);\n\n if (this.props.pastBroadcasts.length > 0 && this.props.futureBroadcasts.length > 0) {\n template = (\n {\n this.setState({ accordionIsShow: status });\n }}>\n {pastBroadcasts}\n \n \n {futureBroadcasts}\n \n \n );\n } else if (this.props.pastBroadcasts.length > 0) {\n template = pastBroadcasts;\n } else if (this.props.futureBroadcasts.length > 0) {\n template = futureBroadcasts;\n }\n\n return template;\n }\n}\n","import { COLORS as COLORS_OLD } from '@r1-frontend/ui-react/assets/js/constants';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { FONTS } from '@r1-frontend/ui-react/tokens/fonts';\nimport React from 'react';\nimport styled from 'styled-components';\n\nconst DescriptionContainer = styled.section`\n background-color: ${COLORS_OLD.lightGrey};\n display: block;\n padding: 47px 0 44px;\n width: 100%;\n\n @media only screen and (max-width: 1359px) {\n padding-top: 31px;\n }\n`;\n\nconst DescriptionWrapper = styled.div`\n box-sizing: border-box;\n display: block;\n margin: 0 auto;\n max-width: 1440px;\n padding: 0 7%;\n width: 100%;\n\n @media screen and (max-width: 859px) {\n padding: 0 15px;\n width: 100%;\n }\n`;\n\nconst DescriptionHeader = styled.div`\n display: flex;\n width: 100%;\n\n @media only screen and (max-width: 767px) {\n flex-direction: column;\n }\n`;\n\nconst DescriptionHeaderTitle = styled.h1`\n color: ${COLORS.TextPrimary};\n display: block;\n ${FONTS.H1};\n margin: -5px 0 0 0;\n\n @media only screen and (max-width: 1359px) {\n ${FONTS.H2};\n }\n\n @media only screen and (max-width: 1023px) {\n ${FONTS.H2};\n }\n\n @media only screen and (max-width: 767px) {\n ${FONTS.H2};\n margin-top: 0;\n }\n`;\n\nconst DescriptionHeaderNumber = styled.div`\n color: ${COLORS_OLD.darkGrey};\n ${FONTS.S};\n margin-bottom: -3px;\n\n @media only screen and (max-width: 767px) {\n margin-bottom: 0;\n margin-top: 10px;\n }\n`;\n\nconst DescriptionHeaderPicture = styled.picture`\n align-items: center;\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n height: 67px;\n width: 100px;\n`;\n\nconst DescriptionHeaderImage = styled.img`\n max-height: 90%;\n max-width: 90%;\n`;\n\nconst DescriptionHeaderContent = styled.div`\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n justify-content: space-between;\n margin-left: 28px;\n\n @media only screen and (max-width: 767px) {\n justify-content: flex-start;\n margin-left: 0;\n margin-top: 16px;\n }\n`;\n\nconst DescriptionBody = styled.div`\n color: ${COLORS.TextPrimary};\n display: block;\n ${FONTS.S};\n margin-top: 30px;\n width: 100%;\n\n @media only screen and (max-width: 767px) {\n margin-top: 13px;\n }\n\n p {\n margin: 0;\n }\n`;\n\nconst DescriptionFooter = styled.div`\n display: block;\n margin-top: 24px;\n width: 100%;\n`;\n\nconst DescriptionFooterTitle = styled.div`\n color: ${COLORS.TextPrimary};\n display: block;\n ${FONTS.S};\n width: 100%;\n`;\n\nconst DescriptionFooterList = styled.ul`\n display: block;\n list-style-type: none;\n margin: 9px 0 0 0;\n padding: 0;\n`;\n\nconst DescriptionFooterListItem = styled.li`\n display: inline-block;\n\n &::after {\n color: ${COLORS_OLD.blue};\n content: \", \";\n white-space: pre;\n }\n\n &:last-child {\n &::after {\n content: none;\n }\n }\n`;\n\nconst DescriptionFooterListHref = styled.a`\n color: ${COLORS_OLD.blue};\n ${FONTS.S};\n text-decoration: underline;\n`;\n\nexport default function DescriptionDetail(props) {\n const description = props.channelInfo.description;\n\n const packageList = props.packageList.map((pack) => {\n return (\n \n {pack.title}\n \n );\n });\n\n let descriptionFooter = null;\n if (props.packageList.length > 0) {\n descriptionFooter = (\n \n Канал входит в пакеты:\n {packageList}\n \n );\n }\n return (\n \n \n \n \n \n \n \n \n {props.channelInfo.channelInfo.title}\n \n \n Кнопка №{props.channelInfo.button}\n \n \n \n \n {description}\n \n {descriptionFooter}\n \n \n );\n}\n","import contentRequest from '~/src/api/requests/contentRequest';\n\n\n/**\n * Получаем пакеты каналов, где есть конкретный телеканал\n *\n * @param {string} id - ID канала\n * @param {number} providerId - город\n * @returns {array} - массив со списком пакетов каналов\n */\nexport async function getPackagesWithChannel(id, providerId) {\n // Получаем информацию о канале\n const channelInfo = await contentRequest.get(`/v1/channels/channels?providerId=${providerId}`)\n .then(({ data }) => data.items.filter(channel => channel.id === Number.parseInt(id, 10))[0])\n .catch(() => []);\n\n if (channelInfo && Array.isArray(channelInfo.channelPackageIds) === false) {\n return;\n }\n\n // Получаем список пакетов\n return contentRequest.get(`/v1/channels/packages?providerId=${providerId}`)\n .then(({ data }) => data.filter(pack => channelInfo.channelPackageIds.includes(pack.id)))\n .catch(() => []);\n}\n","import { getChannelInfoByAlias } from '@r1-frontend/api-domru/api-epg/v1/channels/alias';\nimport { getChannelInfo } from '@r1-frontend/api-domru/api-epg/v1/channels/id';\nimport { COLORS } from '@r1-frontend/ui-react/assets/js/constants';\nimport Tab from '@r1-frontend/ui-react/components/tabs/tab';\nimport Tabs from '@r1-frontend/ui-react/components/tabs/tabs';\nimport Router from 'next/router';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport styled from 'styled-components';\n\nimport ErrorPage from '~/pages/_error';\nimport Layout from '~/src/features/_layout';\nimport { getSchedule } from '~/src/features/domru-tv/api';\nimport ChannelDetail from '~/src/features/schedule/ChannelDetail';\nimport DescriptionDetail from '~/src/features/schedule/DescriptionDetail';\nimport { getPackagesWithChannel } from '~/src/features/schedule/getPackagesWithChannel';\nimport { addTimeToSchedule, broadcastsFilter, createDateList } from '~/src/features/schedule/helpers';\nimport ScheduleTooltip from '~/src/features/schedule/ScheduleTooltip';\nimport { initialProps } from '~/src/helpers/basePageFunc';\nimport getRequester from '~/src/helpers/getRequester';\nimport { permanentRedirect } from '~/src/helpers/url';\nimport { selectCompanyName } from '~/src/store/selectors/city';\n\nconst ScheduleContainer = styled.div`\n background-color: ${COLORS.white};\n display: block;\n flex-grow: 1;\n width: 100%;\n`;\n\nconst ScheduleDetail = styled.section`\n margin-top: 7px;\n width: 100%;\n`;\n\nconst ScheduleWrapper = styled.div`\n box-sizing: border-box;\n margin: 0 auto;\n max-width: 1440px;\n padding: 0 7%;\n width: 100%;\n\n @media screen and (max-width: 859px) {\n padding: 0 15px;\n width: 100%;\n }\n`;\n\nclass ScheduleDetailPage extends React.Component {\n static async getInitialProps(options) {\n await initialProps(options);\n const { req, res, store, query: { alias } } = options;\n\n const doRequest = getRequester(req);\n\n const channelAlias = alias;\n\n const state = store.getState();\n const { provider: { providerId } } = state.city;\n const companyName = selectCompanyName(state);\n\n // Получаем информацию о канале\n const response = await doRequest.apiEPG(\n getChannelInfoByAlias(channelAlias, providerId),\n );\n if (!response.isSuccess) {\n res.status(404);\n return { channelInfo: null };\n }\n\n const channelInfo = {\n ...response.payload,\n button: response.payload.lcn,\n logo: response.payload?.channelInfo?.logo,\n chid: response.payload?.channelId,\n xvid: response.payload?.epgId,\n };\n\n // Информация о канале с ID\n const channelInfoId = channelInfo.chid;\n if (Number.isInteger(+alias)) {\n const channelInfoById = await doRequest.apiEPG(\n getChannelInfo(channelInfoId, providerId),\n );\n if (channelInfoById.isSuccess) {\n return permanentRedirect({\n res,\n location: `/domru-tv/channel/${channelInfoById.payload.alias}`,\n });\n }\n }\n\n // Редирект, если канал не должен показываться\n if ((Object.keys(channelInfo).length > 0) && ((!channelInfo.display) || (Number(channelInfo.display) & 1) !== 1)) {\n if (req) {\n res.writeHead(301, { Location: '/domru-tv/program' });\n res.end();\n } else {\n Router.push('/domru-tv/program');\n }\n }\n\n // Получаем пакет каналов\n const packageList = await getPackagesWithChannel(channelInfo.id, providerId);\n\n // xvid канала\n const xvidArray = [channelInfo.xvid];\n\n // Получаем расписание канала\n const dateList = createDateList();\n const schedules = await getSchedule({\n xvidArray,\n startDate: dateList[2].start,\n time: {\n start: {\n hour: '0',\n minute: '00',\n },\n },\n });\n\n\n let pastBroadcasts = null;\n let futureBroadcasts = null;\n\n const scheduleList = { ...addTimeToSchedule(schedules.isSuccess ? schedules.payload : []) };\n\n // Фильтруем программу и записываем\n\n if (scheduleList[xvidArray] !== undefined) {\n const filteredBroadcasts = broadcastsFilter(scheduleList[xvidArray]);\n pastBroadcasts = filteredBroadcasts.pastBroadcasts;\n futureBroadcasts = filteredBroadcasts.futureBroadcasts;\n }\n\n if (!channelInfo && res) {\n res.statusCode = 404;\n }\n\n return {\n channelInfo,\n packageList,\n xvid: xvidArray,\n dateList,\n scheduleList,\n pastBroadcasts,\n futureBroadcasts,\n companyName,\n };\n }\n\n constructor(props) {\n super(props);\n\n this.broadcastTimer = null;\n this.tooltipContainer = React.createRef();\n\n this.state = {\n currentDate: props.dateList?.length && props.dateList[2].start,\n dateList: props.dateList,\n scheduleList: props.scheduleList,\n futureBroadcasts: props.futureBroadcasts,\n pastBroadcasts: props.pastBroadcasts,\n tooltipData: {},\n };\n }\n\n async componentDidMount() {\n this.updateSchedule();\n }\n\n componentDidUpdate({ city }) {\n if (JSON.stringify(this.props.city) !== JSON.stringify(city)) {\n this.setState(() => ({\n scheduleList: {},\n }), this.updateSchedule);\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this.broadcastTimer);\n }\n\n updateProgress = () => {\n if (Array.isArray(this.state.scheduleList[this.props.xvid]) === false) {\n this.setState({\n pastBroadcasts: [],\n futureBroadcasts: [],\n });\n\n clearTimeout(this.broadcastTimer);\n return false;\n }\n\n const filteredBroadcasts = broadcastsFilter(this.state.scheduleList[this.props.xvid] || []);\n this.setState({\n pastBroadcasts: filteredBroadcasts.pastBroadcasts,\n futureBroadcasts: filteredBroadcasts.futureBroadcasts,\n });\n\n if (filteredBroadcasts.futureBroadcasts.length === 0) {\n clearTimeout(this.broadcastTimer);\n return false;\n }\n\n return true;\n }\n\n async updateSchedule() {\n if (!this.props.xvid) {\n return;\n }\n\n clearTimeout(this.broadcastTimer);\n const scheduleList = await getSchedule({\n xvidArray: this.props.xvid,\n startDate: this.state.currentDate,\n time: {\n start: { hour: '0', minute: '00' },\n finish: { hour: '23', minute: '59' },\n },\n });\n this.setState({\n scheduleList: addTimeToSchedule(scheduleList.isSuccess ? scheduleList.payload : undefined),\n }, () => {\n const channelIsActive = this.updateProgress();\n\n if (channelIsActive) {\n this.broadcastTimer = setTimeout(this.updateProgress, 10000);\n }\n });\n}\n\n onDateChange = async(tabName) => {\n const currentDate = this.state.dateList\n .filter(({ tabTitle }) => tabTitle === tabName)[0];\n\n this.setState(() => ({\n currentDate: currentDate.start,\n scheduleList: {},\n }), this.updateSchedule);\n }\n\n tooltipOpen = (content, coordinates) => {\n this.setState({\n tooltipData: {\n isShow: true,\n content,\n container: this.tooltipContainer.current,\n coordinates,\n },\n });\n }\n\n tooltipClose = () => {\n this.setState({\n tooltipData: {\n isShow: false,\n content: null,\n },\n });\n }\n\n render() {\n const { city, channelInfo, companyName, packageList = [] } = this.props;\n\n if (!channelInfo) {\n return ;\n }\n\n const { dateList, futureBroadcasts, pastBroadcasts, tooltipData } = this.state;\n\n let tabsContainer = null;\n if (dateList.length > 0) {\n const tabs = dateList.map((date) => (\n \n {\n futureBroadcasts\n ? \n : ''\n }\n \n ));\n\n tabsContainer = (\n \n {tabs}\n \n );\n }\n\n let tooltip = null;\n\n if (tooltipData.isShow) {\n tooltip = ();\n }\n\n return (\n \n \n \n\n \n \n {tabsContainer}\n \n \n {tooltip}\n \n \n );\n }\n}\n\nconst mapStateToProps = state => ({\n city: state.city.currentCity,\n});\n\nexport default connect(mapStateToProps)(ScheduleDetailPage);\n","import { isServerSide } from '@r1-frontend/shared/helpers/ssr';\nimport axios from 'axios';\nimport { stringify } from 'qs';\nimport cookies from 'react-cookies';\n\nimport { ACCESS_TOKEN_COOKIE, NO_CACHE_COOKIE } from '~/src/constants';\n\n/**\n * Запрос в ApiContent\n */\nconst axiosContent = axios.create({\n baseURL: isServerSide()\n ? process.env.NEXT_PUBLIC_HOST_API_CONTENT_INNER || process.env.NEXT_PUBLIC_HOST_API_CONTENT\n : process.env.NEXT_PUBLIC_HOST_API_CONTENT,\n});\n\naxiosContent.interceptors.request.use(\n (config) => {\n const token = cookies.load(ACCESS_TOKEN_COOKIE);\n const noCacheKey = cookies.load(NO_CACHE_COOKIE);\n\n const headers = {\n 'X-Requested-With': 'XMLHttpRequest',\n };\n\n if (!config.headers['Authorization'] && token) {\n headers['Authorization'] = `Bearer ${ token }`;\n }\n\n if (noCacheKey) {\n headers['no-cache-key'] = noCacheKey;\n }\n config.headers = { ...config.headers, ...headers };\n\n return config;\n },\n (error) => Promise.reject(error),\n);\n\n/**\n * @deprecated\n * @type {AxiosInstance}\n */\nconst contentRequest = Object.create(axiosContent);\n\ncontentRequest.get = async(url, options) => {\n if (options) {\n options.paramsSerializer = params => {\n return stringify(params);\n };\n }\n return axiosContent.get(url, options);\n};\nexport default contentRequest;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport styled from 'styled-components';\n\nconst defaultProps = {\n duration: 0.3,\n isAnimate: true,\n isShow: false,\n};\n\nconst propTypes = {\n duration: PropTypes.number,\n isAnimate: PropTypes.bool,\n isShow: PropTypes.bool,\n};\n\nconst AccordionBody = styled.div`\n max-height: ${props => props.maxHeight || null};\n overflow: hidden;\n transition: max-height ${({ duration }) => duration}s ease;\n width: 100%;\n`;\n\nexport class AccordionAnimateBody extends Component {\n static propTypes = propTypes;\n static defaultProps = defaultProps;\n\n constructor(props) {\n super(props);\n this.state = { maxHeight: '0px' };\n this.bodyRef = React.createRef();\n }\n\n bodyHide = () => {\n if (this.props.isAnimate === false) {\n this.setState({ maxHeight: '0px' });\n return;\n }\n\n this.setState({ maxHeight: `${this.bodyRef.current.scrollHeight}px` });\n this.bodyRef.current.offsetHeight;\n this.setState({ maxHeight: '0px' });\n }\n\n bodyShow = () => {\n if (this.props.isAnimate === false) {\n this.clearStyle();\n return;\n }\n\n this.setState({ maxHeight: `${this.bodyRef.current.scrollHeight}px` });\n }\n\n clearStyle = () => {\n this.setState({ maxHeight: null });\n }\n\n componentDidMount() {\n if (this.props.isShow === false) {\n this.setState({ maxHeight: '0px' });\n }\n }\n\n componentDidUpdate({ isShow }) {\n if (isShow !== this.props.isShow) {\n if (this.props.isShow === true) {\n this.bodyShow();\n } else {\n this.bodyHide();\n }\n }\n }\n\n render() {\n return (\n {\n return;\n }}\n data-test={'AccordionBody'}\n {...this.props}\n >\n {this.props.children}\n \n );\n }\n}\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport { COLORS } from '../../../assets/js/constants';\nimport { FONTS } from '../../../tokens/fonts';\n\nconst defaultProps = {\n onClick: () => {\n return;\n },\n};\n\nconst propTypes = {\n onClick: PropTypes.func,\n text: PropTypes.string,\n};\n\nconst AccordionHeader = styled.div`\n align-items: center;\n cursor: pointer;\n display: flex;\n user-select: none;\n width: 100%;\n`;\n\nconst AccordionHeaderText = styled.span`\n border-bottom: 1px dotted ${COLORS.blue};\n color: ${COLORS.blue};\n display: inline-block;\n ${FONTS.S};\n`;\n\nconst AccordionHeaderIcon = styled.img`\n margin-left: 10px;\n transform: ${({ isShow }) => isShow ? 'rotate(-180deg)' : 'rotate(0deg)'};\n transform-origin: 50% 50%;\n transition: transform 0.3s ease;\n height: 7px;\n width: 12px;\n`;\n\nexport function AccordionAnimateHeader(props) {\n let headerContent = props.children;\n\n if (props.text !== undefined) {\n headerContent = (\n \n {props.text}\n \n \n );\n }\n\n return (\n \n {headerContent}\n \n );\n}\n\nAccordionAnimateHeader.defaultProps = defaultProps;\nAccordionAnimateHeader.propTypes = propTypes;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nimport { AccordionAnimateBody } from './AccordionAnimateBody';\nimport { AccordionAnimateHeader } from './AccordionAnimateHeader';\n\nconst defaultProps = {\n isShow: false,\n isAnimate: true,\n onToggle: () => {\n return;\n },\n};\n\nconst propTypes = {\n isShow: PropTypes.bool,\n isAnimate: PropTypes.bool,\n onToggle: PropTypes.func,\n};\n\nexport class AccordionAnimate extends Component {\n static propTypes = propTypes;\n static defaultProps = defaultProps;\n\n constructor(props) {\n super(props);\n\n this.state = {\n isShow: this.props.isShow,\n };\n }\n\n getHeader(child) {\n return React.cloneElement(child, {\n isShow: this.state.isShow,\n onClick: this.accordionToggle,\n });\n }\n\n getBody(child) {\n return React.cloneElement(child, {\n duration: this.props.duration,\n isShow: this.state.isShow,\n isAnimate: this.props.isAnimate,\n });\n }\n\n accordionToggle = () => {\n this.setState(({ isShow }) => {\n return { isShow: !isShow };\n }, () => {\n this.props.onToggle(this.state.isShow);\n });\n }\n\n componentDidUpdate({ isShow }) {\n if (isShow !== this.props.isShow) {\n this.setState({\n isShow: this.props.isShow,\n });\n }\n }\n\n render() {\n return (\n
\n {React.Children.map(this.props.children, (child) => {\n if (child.type && child.type.name === AccordionAnimateHeader.name) {\n return this.getHeader(child);\n } else if (child.type && child.type.name === AccordionAnimateBody.name) {\n return this.getBody(child);\n } else {\n return child;\n }\n })}\n
\n );\n }\n}\n\nexport { AccordionAnimateBody } from './AccordionAnimateBody';\nexport { AccordionAnimateHeader } from './AccordionAnimateHeader';\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTIgNyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjMDA3QUU1Ij4KICAgIDxwYXRoIGQ9Ik0xMS41NjY0IDEuMzQ3NjZDMTEuNTY2NCAxLjQzODggMTEuNTI3MyAxLjUyMzQ0IDExLjQ0OTIgMS42MDE1Nkw2LjI1MzkxIDYuNzk2ODhDNi4xNzU3OCA2Ljg3NSA2LjA5MTE1IDYuOTE0MDYgNiA2LjkxNDA2QzUuOTA4ODUgNi45MTQwNiA1LjgyNDIyIDYuODc1IDUuNzQ2MDkgNi43OTY4OEwwLjU1MDc4MSAxLjYwMTU2QzAuNDcyNjU2IDEuNTIzNDQgMC40MzM1OTQgMS40Mzg4IDAuNDMzNTk0IDEuMzQ3NjZDMC40MzM1OTQgMS4yNDM0OSAwLjQ3MjY1NiAxLjE1MjM0IDAuNTUwNzgxIDEuMDc0MjJMMS4wOTc2NiAwLjUyNzM0NEMxLjE3NTc4IDAuNDQ5MjE5IDEuMjYwNDIgMC40MTAxNTYgMS4zNTE1NiAwLjQxMDE1NkMxLjQ1NTczIDAuNDEwMTU2IDEuNTQwMzYgMC40NDkyMTkgMS42MDU0NyAwLjUyNzM0NEw2IDQuOTAyMzRMMTAuMzk0NSAwLjUyNzM0NEMxMC40NTk2IDAuNDQ5MjE5IDEwLjU0NDMgMC40MTAxNTYgMTAuNjQ4NCAwLjQxMDE1NkMxMC43Mzk2IDAuNDEwMTU2IDEwLjgyNDIgMC40NDkyMTkgMTAuOTAyMyAwLjUyNzM0NEwxMS40NDkyIDEuMDc0MjJDMTEuNTI3MyAxLjE1MjM0IDExLjU2NjQgMS4yNDM0OSAxMS41NjY0IDEuMzQ3NjZaIi8+Cjwvc3ZnPgo=\""],"names":["window","__NEXT_P","push","getChannelInfoByAlias","alias","providerId","uri","method","queryParams","with","headers","getChannelInfo","id","FutureBroadcasts","styled","BroadcastTime","BroadcastTitle","Broadcast","COLORS_OLD","FONTS","broadcastStatus","css","COLORS","BroadcastProgress","BroadcastProgressBar","BroadcastHead","BroadcastContent","BroadcastContentPicture","ChannelDetail","props","onBroadcastClick","event","broadcast","index","content","title","desc","icon","coordinates","x","clientX","y","clientY","tooltipOpen","state","accordionIsShow","render","pastBroadcasts","this","map","status","onClick","tabIndex","futureBroadcasts","progress","style","width","dateToScheduleFormat","Date","start","img","src","EGP_IMG","alt","span","settings","margin","text","template","div","length","AccordionAnimate","onToggle","setState","AccordionAnimateBody","AccordionAnimateHeader","marginTop","Component","DescriptionContainer","DescriptionWrapper","DescriptionHeader","DescriptionHeaderTitle","DescriptionHeaderNumber","DescriptionHeaderPicture","DescriptionHeaderImage","DescriptionHeaderContent","DescriptionBody","DescriptionFooter","DescriptionFooterTitle","DescriptionFooterList","DescriptionFooterListItem","DescriptionFooterListHref","DescriptionDetail","description","channelInfo","packageList","pack","href","descriptionFooter","logo","button","getPackagesWithChannel","contentRequest","then","data","items","filter","channel","Number","parseInt","catch","Array","isArray","channelPackageIds","includes","ScheduleContainer","ScheduleDetail","ScheduleWrapper","ScheduleDetailPage","updateProgress","scheduleList","xvid","clearTimeout","broadcastTimer","filteredBroadcasts","broadcastsFilter","onDateChange","tabName","currentDate","dateList","tabTitle","updateSchedule","tooltipData","isShow","container","tooltipContainer","current","tooltipClose","React","componentDidMount","componentDidUpdate","city","JSON","stringify","componentWillUnmount","getSchedule","xvidArray","startDate","time","hour","minute","finish","addTimeToSchedule","isSuccess","payload","undefined","setTimeout","companyName","ErrorPage","statusCode","tabsContainer","tabs","date","Tab","label","Tabs","activeTab","onSwitchTab","tooltip","ScheduleTooltip","Layout","withMenu","withChat","cityIn","ref","getInitialProps","options","response","req","res","store","doRequest","channelAlias","channelInfoId","channelInfoById","schedules","initialProps","query","getRequester","getState","provider","selectCompanyName","apiEPG","lcn","chid","channelId","epgId","isInteger","permanentRedirect","location","keys","display","writeHead","Location","end","Router","createDateList","connect","currentCity","axiosContent","axios","baseURL","isServerSide","process","interceptors","request","use","config","token","cookies","ACCESS_TOKEN_COOKIE","noCacheKey","NO_CACHE_COOKIE","error","Promise","reject","Object","create","get","url","paramsSerializer","params","propTypes","duration","PropTypes","isAnimate","AccordionBody","maxHeight","bodyHide","bodyRef","scrollHeight","offsetHeight","bodyShow","clearStyle","onTransitionEnd","data-test","children","defaultProps","AccordionHeader","AccordionHeaderText","AccordionHeaderIcon","headerContent","require","accordionToggle","getHeader","child","getBody","className","type","name","module","exports"],"sourceRoot":""}